ALV und Styles
Mithilfe von “Styles” können einzelne Zellen eines Grids beeinflusst und formatiert werden. An diesem kleinen Beispielprogramm zeigen wir Ihnen, wie einzelne Linien in einem ALV Grid verschwinden.
Coding
REPORT zz_texte_im_alv_grid. *________________________________________________________________* * * * https://tricktresor.com * *________________________________________________________________* * * Demoprogramm: Anzeige eines Textes in einem ALV-Grid. * Dabei wird die jeweils erste Zeile eines Absatzes farblich * hervorgehoben. * Die Rahmenlinien innerhalb dieses Absatzes werden ausgeblendet *________________________________________________________________* * * Anmerkungen: * 1. Bitte den Status "TEST" anlegen mit Funktion "BACK" auf * Funktionstaste F12 (Abbrechen) * 2. Auf dem Dynpro 100 einen Custom Container mit Namen CC_TEXT * anlegen * 3. Auf dem Dynpro 100 dem Element "OK_CODE" das Feld SY-UCOMM * zuordnen * 4. Ablauflogik für Dynpro: * PROCESS BEFORE OUTPUT. * MODULE STATUS_0100. * * PROCESS AFTER INPUT. * MODULE USER_COMMAND_0100. *________________________________________________________________* * *** Textanzeige INCLUDE <cl_alv_control>. *** Typ Texttabelle mit Style-Tabelle je Zeile TYPES BEGIN OF ty_text_style. INCLUDE STRUCTURE tline. TYPES style TYPE lvc_t_styl. TYPES END OF ty_text_style. *** Variablen *::: Tabelle mit einem "Absatz" DATA gt_text TYPE STANDARD TABLE OF tline. *::: Tabelle zu der Texttabelle, aber mit "Style" DATA gt_texte TYPE STANDARD TABLE OF ty_text_style. *::: Style-Tabelle DATA gt_style TYPE lvc_t_styl. DATA gs_style TYPE lvc_s_styl. *::: ALV-Grid und Container DATA gref_grid TYPE REF TO cl_gui_alv_grid. DATA gref_container TYPE REF TO cl_gui_custom_container. *::: ALV-Layout DATA gs_layout TYPE lvc_s_layo. *::: ALV-Feldkatalog DATA gt_fcat TYPE lvc_t_fcat. *** Field-Symbols *::: Feldkatalog FIELD-SYMBOLS <fcat> TYPE lvc_s_fcat. *::: Feldsymbol für Tabelle mit Style-Tabelle FIELD-SYMBOLS <texts> TYPE ty_text_style. *::: Feldsymbol für normale Texttabelle FIELD-SYMBOLS <textl> TYPE tline. START-OF-SELECTION. *** Testdaten erzeugen PERFORM testdaten. *** Aufruf des Popups mit ALV-Grid CALL SCREEN 100 STARTING AT 2 2 ENDING AT 50 20. *&---------------------------------------------------------------------* *& Form testdaten *&---------------------------------------------------------------------* FORM testdaten. *** Testdaten: "Infos zum Tricktresor" CLEAR gt_text. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdformat = '*'. <textl>-tdline = 'www.Tricktresor.de'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'Im Tricktresor finden Sie eine Menge Tipps und Hinweise'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'zur Programmierung mit ABAP. Viele Beispielprogramme'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'zeigen, wie ein Trick funktioniert und wozu er verwendet'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'werden kann.'. PERFORM append_text. *** Testdaten: "Infos zu Orange Five GmbH" CLEAR gt_text. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdformat = '*'. <textl>-tdline = 'www.Orangefive.de'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'Orange Five GmbH ist eine kleine aber schlagkräftige'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'Truppe von Beratern im SAP Umfeld. Wenn Sie Wert auf'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'hochwertige und kreative Dienstleistungen legen, dann setzen'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'Sie mit Orange Five auf die richtige Zahl.'. PERFORM append_text. *** Testdaten: "Infos zu Loremo" CLEAR gt_text. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdformat = '*'. <textl>-tdline = 'www.Loremo.com'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'Das Auto der Zukunft ist revolutionär durch ein'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'auffälliges aber angenehmes Design, ein geringes Gewicht,'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'einem sensationell niedrigem Benzinverbrauch von 1,5 l'. APPEND INITIAL LINE TO gt_text ASSIGNING <textl>. <textl>-tdline = 'und die Konzentration auf das Wesentliche.'. PERFORM append_text. ENDFORM. "testdaten *&---------------------------------------------------------------------* *& Form append_text *&---------------------------------------------------------------------* FORM append_text. *** Text in Tabelle mit allen Texten übernehmen LOOP AT gt_text ASSIGNING <textl>. *** neue Zeile für "Gesamttexte" APPEND INITIAL LINE TO gt_texte ASSIGNING <texts>. *** Text übernehmen <texts>-tdformat = <textl>-tdformat. <texts>-tdline = <textl>-tdline. IF <textl>-tdformat = '*'. *** Spezielle Style-Aufbereitung für erste Zeile eines Textes CLEAR gs_style. *** Farbe und Schriftstil für "TDLINE" gs_style-fieldname = 'TDLINE'. gs_style-style = alv_style_font_bold + alv_style_color_negative. *** Rahmen: Unten keine Linie gs_style-style2 = alv_style2_no_border_bottom. APPEND gs_style TO <texts>-style. ELSE. *** Spezielle Style-Aufbereitung für folgende Textzeilen. CLEAR gs_style. gs_style-fieldname = 'TDLINE'. IF LINES( gt_text ) = sy-tabix. *** Spezielle Style-Aufbereitung für letzte Textzeile. gs_style-style2 = alv_style2_no_border_top. ELSE. *** Spezielle Style-Aufbereitung für Textzeilen "Dazwischen": *** Keine Linien oben und unten gs_style-style2 = alv_style2_no_border_top + alv_style2_no_border_bottom. ENDIF. *** Style-Tabelle anhängen APPEND gs_style TO <texts>-style. ENDIF. ENDLOOP. ENDFORM. "append_text *&---------------------------------------------------------------------* *& Form init_alv *&---------------------------------------------------------------------* FORM init_alv. IF gref_container IS INITIAL. *** Custom Container erzeugen CREATE OBJECT gref_container EXPORTING container_name = 'CC_TEXT' EXCEPTIONS OTHERS = 5. *** ALV-Grid erzeugen CREATE OBJECT gref_grid EXPORTING i_parent = gref_container. *** Layout CLEAR gs_layout. gs_layout-no_toolbar = 'X'. gs_layout-smalltitle = 'X'. gs_layout-cwidth_opt = 'X'. gs_layout-stylefname = 'STYLE'. *** Feldkatalog erzeugen CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'TLINE' CHANGING ct_fieldcat = gt_fcat EXCEPTIONS OTHERS = 3. IF sy-subrc = 0. *** Feldkatalog ändern LOOP AT gt_fcat ASSIGNING <fcat>. CASE <fcat>-fieldname. WHEN 'TDFORMAT'. ***--> Formatspalte ausblenden <fcat>-tech = 'X'. WHEN 'TDLINE'. ***--> Überschrift setzen für Textzeile <fcat>-scrtext_l = 'Info'. ENDCASE. ENDLOOP. *** Texttabelle im Grid anzeigen CALL METHOD gref_grid->set_table_for_first_display EXPORTING is_layout = gs_layout CHANGING it_fieldcatalog = gt_fcat it_outtab = gt_texte. ENDIF. ELSE. *** Refresh, falls Text geändert wurde CALL METHOD gref_grid->refresh_table_display. ENDIF. ENDFORM. "init_alv *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* MODULE status_0100 OUTPUT. SET PF-STATUS 'TEST'. PERFORM init_alv. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* MODULE user_command_0100 INPUT. IF sy-ucomm = 'BACK'. SET SCREEN 0. LEAVE SCREEN. ENDIF. ENDMODULE. " USER_COMMAND_0100 INPUT
Letzte Artikel von Enno Wulff (Alle anzeigen)
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024